//
//  QKAlertType.swift
//  SMHCommerce
//
//  Created by lvzhao on 2020/1/6.
//  Copyright © 2020 lvzhao. All rights reserved.
//  App 弹框管理

//import UIKit
//import UserNotifications
//
//enum LZAlertType: Int {
//    case ready = 0      // 准备
//    case launchFinished // 启动完成
//    case adAlert        // 闪屏广告
//    case guideAlert     // 引导页
//    case checkLocationAlert // 检测定位弹框
//    case updateAlert        // 更新弹框
//    case remoteNotifiAlert  // 推送关闭提醒弹框
//    case completeInfoAlert  // 完善资料弹框
//    case openShopAlert  // 成为达人店主弹框
//    case other          // 其他弹框
//    case finished       // 流程结束
//}
//
//class LZAlertManager: NSObject {
//
//    static let sharedManager: LZAlertManager = LZAlertManager()
//
//    var alertType: LZAlertType = .ready
//
//    // 是否需要显示引导页
//    var isNeedToShowGuide: Bool {
//
//        get {
//
//            /*
//            // 去掉引导页
//            let isNeedShowGuidePage_: Bool = false
//
//            let curVersion = appBundleShortVersion
//            let localVersion = UserDefaults.standard.value(forKey: UDKEY_QK_USER_APP_LOCAL_VERSION) as? String
//
//            if var curVer = curVersion , var localVer = localVersion {
//                // 全部转为ver: xxx.xxx.xxx
//                if curVer.components(separatedBy: ".").count < 3 {
//                    curVer = curVer + ".0"
//                }
//
//                if localVer.components(separatedBy: ".").count < 3 {
//                    localVer = localVer + ".0"
//                }
//
//                // 版本升级更新了，启动引导页
//                if localVer.compare(curVer, options: String.CompareOptions.numeric, range: nil, locale: nil)
//                    == ComparisonResult.orderedAscending {
//
//                    isNeedShowGuidePage_ = true
//                }
//            }
//            else {
//                // 首次安装或者重新安装，开启引导页
//                isNeedShowGuidePage_ = true
//            }
//
//             debug时打开即可
//            #if DEBUG
//            isNeedShowGuidePage_ = true
//            #endif
//        */
//
//            return false
//        }
//    }
//
//    // 首页轮播
//    var carouselModel: HomeCarouselModel?
//
//
//    private  override init() {
//        super.init()
//
//    }
//
//    // 弹框顺序控制
//    func nextStep() {
//
//
//
//        switch alertType {
//        case .ready:
//            alertType = .launchFinished
//            case .launchFinished:
//                alertType = .guideAlert
//            case .ready:
//                alertType = .launchFinished
//            case .ready:
//                alertType = .launchFinished
//            case .ready:
//                alertType = .launchFinished
//            case .ready:
//                alertType = .launchFinished
//            case .ready:
//                alertType = .launchFinished
//        default:
//            <#code#>
//        }
//
//        // 每一步都会走，只是弹框显示时机不同而已
//
//        else if alertType == .launchFinished {
//        }
//        else if alertType == .guideAlert {
//            alertType = .checkLocationAlert
//        }
//        else if alertType == .checkLocationAlert {
//            alertType = .updateAlert
//        }
//        else if alertType == .updateAlert {
//            alertType = .remoteNotifiAlert
//        }
//        else if alertType == .remoteNotifiAlert {
//            alertType = .completeInfoAlert
//        }
//        else if alertType == .completeInfoAlert {
//            alertType = .openShopAlert
//        }
//        else if alertType == .openShopAlert {
//            alertType = .other
//        }
//        else if alertType == .other {
//            alertType = .finished
//        }
//
//        DispatchQueue.main.async { [weak self] in
//            if let weakSelf = self {
//                weakSelf.showAlert(alertType: weakSelf.alertType)
//            }
//        }
//    }
//
//    // 弹框
//    func showAlert(alertType: QKAlertType) {
//
//        if alertType == .ready {
//            return
//        }
//        else if alertType == .launchFinished {
//            // 启动中
//            Log(message: "alertManager->启动中...")
//            return
//        }
//        else if alertType == .adAlert { // 暂时没有
//            // 闪屏广告
//            Log(message: "alertManager->闪屏广告")
//        }
//        else if alertType == .guideAlert {
//            // 引导页
//            self.showGuidePageView()
//            Log(message: "alertManager->引导页")
//        }
//        else if alertType == .checkLocationAlert {
//
//            Log(message: "alertManager->定位权限检测")
//        }
//        else if alertType == .updateAlert {
//            // 更新弹框
//            self.showAppUpdateAlert()
//            Log(message: "alertManager->更新提醒")
//        }
//        else if alertType == .remoteNotifiAlert {
//            // 推送开关检测
//            self.checkNotificationOpenState()
//            Log(message: "alertManager->推送检测提醒")
//        }
//        else if alertType == .completeInfoAlert {
//            // 完善资料弹框
//            self.showCompleteUserInfoAlert()
//            Log(message: "alertManager->完善资料提醒")
//        }
//        else if alertType == .openShopAlert {
//            self.showOpenTalentShopAlert()
//            Log(message: "alertManager->成为达人店铺提醒")
//        }
//        else if alertType == .other {
//            // 定位权限获取
//            NotificationCenter.default.post(name: NSNotification.Name(rawValue: NNKEY_CAN_REGISTER_PUSH_AND_LOCATION), object: nil, userInfo: nil)
//            Log(message: "alertManager->获取定位权限")
//        }
//        else if alertType == .finished {
//            Log(message: "alertManager->弹框控制流程走完!")
//        }
//    }
//
//    // 弹出引导页
//    func showGuidePageView() {
//
//        let curVersion = appBundleShortVersion
//
//        if self.isNeedToShowGuide {
//            let window = (UIApplication.shared.delegate as? QKAppDelegate)?.window
//            let guideView = LaunchGuidePageView.showLaunchGuideViewToWindow(window: window)
//            guideView?.launchGuideAnimationFinishClosure = { (lanuchVw) in
//                // 下一步，引导新版本更新弹框
//                if QKAlertManager.sharedManager.alertType == QKAlertType.guideAlert {
//                    QKAlertManager.sharedManager.nextStep()
//                }
//            }
//
//            UserDefaults.standard.setValue(curVersion, forKey: UDKEY_QK_USER_APP_LOCAL_VERSION)
//            UserDefaults.standard.synchronize()
//        }
//        else {
//            // 不需要启动引导页，直接下一步
//            if QKAlertManager.sharedManager.alertType == QKAlertType.guideAlert {
//                QKAlertManager.sharedManager.nextStep()
//            }
//        }
//    }
//
//    // 弹出版本升级提醒
//    func showAppUpdateAlert() {
//
//        TEVersionUpdateView.requestForLastVersion()
//    }
//
//    // 推送是否打开检测
//    // 规则：12h提醒一次
//    func checkNotificationOpenState() {
//
//        let saveTime = getValueForUserDefaultsWithKey(key: UDKEY_NOTIFICATION_ALERT_TIMEINTERVAL) as? TimeInterval
//        let curTime = Date().getTimeIntervalSince1970()
//
//        if let saveTime_ = saveTime , curTime - saveTime_ < TimeInterval(60 * 60 * 12) {
//            QKAlertManager.sharedManager.nextStep()
//            return
//        }
//
//        // 判断推送是否打开
//        if #available(iOS 10.0, *) {
//            UNUserNotificationCenter.current().getNotificationSettings { (settings) in
//                // iOS13later not Main thread
//                DispatchQueue.main.async(execute: {
//                    if settings.alertStyle == .none {
//                        QKCustomAlertController.showAlertController(title: "通知已关闭，您将无法及时收到重要的消息通知，是否需要打开通知？", message: nil, cancel: "取消", confirm: "去打开", confirmClosure: { (btnStyle) in
//                            if btnStyle == .confirm {
//                                LGSystemConfigTool.openSystemSetting()
//                            }
//
//                            QKAlertManager.sharedManager.nextStep()
//                        })
//
//                        saveUserDefaultsWithValue(value: curTime, key: UDKEY_NOTIFICATION_ALERT_TIMEINTERVAL)
//                    }
//                    else {
//                        // 直接下一步
//                        QKAlertManager.sharedManager.nextStep()
//                    }
//                })
//            }
//        } else {
//            // iOS 9
//            if !UIApplication.shared.isRegisteredForRemoteNotifications {
//                DispatchQueue.main.async(execute: {
//                    QKCustomAlertController.showAlertController(title: "通知已关闭，您将无法及时收到重要的消息通知，是否需要打开通知？", message: nil, cancel: "取消", confirm: "去打开", confirmClosure: { (btnStyle) in
//                        if btnStyle == .confirm {
//                            LGSystemConfigTool.openSystemSetting()
//                        }
//
//                        QKAlertManager.sharedManager.nextStep()
//                    })
//
//                    saveUserDefaultsWithValue(value: curTime, key: UDKEY_NOTIFICATION_ALERT_TIMEINTERVAL)
//                })
//            }
//            else {
//                // 直接下一步
//                QKAlertManager.sharedManager.nextStep()
//            }
//        }
//    }
//
//    // 完善资料弹框提醒
//    func showCompleteUserInfoAlert() {
//
//        if QKCommonShared.shared.loginInfo == nil {
//            return
//        }
//
//        let saveTime = getValueForUserDefaultsWithKey(key: UDKEY_USERINFOCOMPLETE_ALERT_TIMEINTERVAL) as? TimeInterval
//        let curTime = Date().getTimeIntervalSince1970()
//        let alertTimeinterval: TimeInterval = 60 *  60 * 24 * 1
//
////        #if DEBUG
////        alertTimeinterval = 1
////        #endif
//
//        if let saveTime_ = saveTime , curTime - saveTime_ < alertTimeinterval {
//            QKAlertManager.sharedManager.nextStep()
//            return
//        }
//
//        if let carselModel_ = self.carouselModel {
//            let userInfoCompleteStatus = carselModel_.tattoo_status
////            #if DEBUG
////            userInfoCompleteStatus = 0
////            #endif
//
//            if userInfoCompleteStatus == 0 {
//
//                DispatchQueue.main.async {
//                    let completeAlertCtrl = CompleteUserInfoAlertController()
//                    completeAlertCtrl.modalPresentationStyle = .overFullScreen
//                    QKTools.currentDisplayingViewController()?.present(completeAlertCtrl, animated: false, completion: {
//                        completeAlertCtrl.showAlert()
//                    })
//                }
//
//                saveUserDefaultsWithValue(value: curTime, key: UDKEY_USERINFOCOMPLETE_ALERT_TIMEINTERVAL)
//            }
//            else {
//                // 下一步
//                QKAlertManager.sharedManager.nextStep()
//            }
//        }
//        else {
//            QKRequestManager.dataRequestForPOSTWithCode(with: QK_REQ_CODE_HOME_CAROUSEL_DATA, parameters: nil, requestInfo: nil) { (data, status, message) in
//
//                var flag: Int = 0
//
//                if status == 1 {
//                    if let dict = data as? [String: Any] {
//                        self.carouselModel = HomeCarouselModel(JSON: dict)
//                        cacheDataWithDictionay(dict: dict, cacheKey: UDKEY_HOME_CASOUEL_DATA_CACHE)
//
//                        if let userInfoCompleteStatus = self.carouselModel?.tattoo_status {
////                            #if DEBUG
////                            userInfoCompleteStatus = 0
////                            #endif
//
//                            if userInfoCompleteStatus == 0 {
//                                flag = 1
//                                DispatchQueue.main.async {
//                                    let completeAlertCtrl = CompleteUserInfoAlertController()
//                                    completeAlertCtrl.modalPresentationStyle = .overFullScreen
//
//                                    QKTools.currentDisplayingViewController()?
//                                        .present(completeAlertCtrl, animated: false, completion: {
//                                        completeAlertCtrl.showAlert()
//                                    })
//                                }
//
//                                saveUserDefaultsWithValue(value: curTime, key: UDKEY_USERINFOCOMPLETE_ALERT_TIMEINTERVAL)
//                            }
//                        }
//                    }
//                }
//
//                // 直接下一步
//                if flag == 0 {
//                    QKAlertManager.sharedManager.nextStep()
//                }
//            }
//        }
//
//    }
//
//    // 成为达人店主弹框提醒
//    func showOpenTalentShopAlert() {
//
//        if QKCommonShared.shared.loginInfo == nil {
//            return
//        }
//
//        let saveTime = getValueForUserDefaultsWithKey(key: UDKEY_OPENTALENT_SHOP_ALERT_TIMEINTERVAL) as? TimeInterval
//        let curTime = Date().getTimeIntervalSince1970()
//        let alertTimeinterval: TimeInterval = 60 * 60 * 24
//
////        #if DEBUG
////        alertTimeinterval = 1
////        #endif
//
//        if let saveTime_ = saveTime , curTime - saveTime_ < alertTimeinterval {
//            QKAlertManager.sharedManager.nextStep()
//            return
//        }
//
//        if let carselModel_ = self.carouselModel {
//
//            let shopOpenStatus = carselModel_.is_vip
////            #if DEBUG
////            shopOpenStatus = 0
////            #endif
//
//            if shopOpenStatus == 0 {
//                let openShopAlertCtrl = OpenShopAlertController()
//                openShopAlertCtrl.modalPresentationStyle = .overFullScreen
//
//                QKTools.currentDisplayingViewController()?.present(openShopAlertCtrl, animated: false, completion: {
//                    openShopAlertCtrl.showAlert()
//                })
//
//                saveUserDefaultsWithValue(value: curTime, key: UDKEY_OPENTALENT_SHOP_ALERT_TIMEINTERVAL)
//            }
//            else {
//                // 下一步
//                QKAlertManager.sharedManager.nextStep()
//            }
//        }
//        else {
//            QKRequestManager.dataRequestForPOSTWithCode(with: QK_REQ_CODE_HOME_CAROUSEL_DATA, parameters: nil, requestInfo: nil) { (data, status, message) in
//
//                var flag: Int = 0
//
//                if status == 1 {
//                    if let dict = data as? [String: Any] {
//                        self.carouselModel = HomeCarouselModel(JSON: dict)
//                        cacheDataWithDictionay(dict: dict, cacheKey: UDKEY_HOME_CASOUEL_DATA_CACHE)
//
//                        if let shopOpenStatus = self.carouselModel?.is_vip {
////                            #if DEBUG
////                            shopOpenStatus = 0
////                            #endif
//
//                            if shopOpenStatus == 0 {
//                                flag = 1
//                                let openShopAlertCtrl = OpenShopAlertController()
//                                openShopAlertCtrl.modalPresentationStyle = .overFullScreen
//
//                                QKTools.currentDisplayingViewController()?.present(openShopAlertCtrl, animated: false, completion: {
//                                    openShopAlertCtrl.showAlert()
//                                })
//
//                                saveUserDefaultsWithValue(value: curTime, key: UDKEY_OPENTALENT_SHOP_ALERT_TIMEINTERVAL)
//                            }
//                        }
//                    }
//                }
//
//                // 直接下一步
//                if flag == 0 {
//                    QKAlertManager.sharedManager.nextStep()
//                }
//            }
//        }
//
//    }
//
//}
